package com.company.eos.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.company.eos.common.util.PageUtils;
import com.company.eos.domain.AuditMeeting;

import java.util.ArrayList;
import java.util.HashMap;

/**
 * @author: Song, Wei
 * @date: 2022-03-03
 */
public interface AuditMeetingService extends IService<AuditMeeting> {
    /**
     * 查询线下会议分页表单
     *
     * @param param
     * @return
     */
    PageUtils searchOfflineMeetingByPage(HashMap param);

    /**
     * 查询线上会议分页表单
     *
     * @param param
     * @return
     */
    PageUtils searchOnlineMeetingByPage(HashMap param);

    /**
     * 新增会议申请
     *
     * @param auditMeeting
     * @return
     */
    int insert(AuditMeeting auditMeeting);

    /**
     * 查询线下会议周日历
     *
     * @param param
     * @return
     */
    ArrayList<HashMap> searchOfflineMeetingInWeek(HashMap param);

    /**
     * 查询线下会议详情
     *
     * @param status
     * @param id
     * @return
     */
    HashMap searchMeetingInfo(int status, int id);

    /**
     * 删除会议
     *
     * @param param
     * @return
     */
    int deleteMeetingApplication(HashMap param);

    /**
     * 查询视频会议RoomId
     *
     * @param uuid
     * @return
     */
    Long searchRoomIdByUuid(String uuid);

    /**
     * 查询线上会议成员
     *
     * @param param
     * @return
     */
    ArrayList<HashMap> searchOnlineMeetingMembers(HashMap param);

    /**
     * 查询会议是否可以签到
     *
     * @param param
     * @return
     */
    boolean searchCanCheckMeeting(HashMap param);

    /**
     * 更新出席人员名单
     *
     * @param param
     * @return
     */
    int updateMeetingPresent(HashMap param);

    /**
     * 更新线下会议的进行状态
     */
    void updateOfflineMeetingStatus();

    /**
     * 更新线上会议的进行状态
     */
    void updateOnlineMeetingStatus();
}
